package com.jml.代理模式.五期.service.cglib.调试代理类;

import java.lang.reflect.Method;

import net.sf.cglib.core.ReflectUtils;
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

public class MemberServiceImpl$$EnhancerByCGLIB$$600aa7a2
        extends MemberServiceImpl {
    private boolean CGLIB$BOUND;
    public static Object CGLIB$FACTORY_DATA;
    private static ThreadLocal CGLIB$THREAD_CALLBACKS;
    private static Callback[] CGLIB$STATIC_CALLBACKS;
    private MethodInterceptor CGLIB$CALLBACK_0;
    private static Object CGLIB$CALLBACK_FILTER;
    private static Method CGLIB$addMember$0$Method;
    private static MethodProxy CGLIB$addMember$0$Proxy;
    private static Object[] CGLIB$emptyArgs;
    private static Method CGLIB$equals$1$Method;
    private static MethodProxy CGLIB$equals$1$Proxy;
    private static Method CGLIB$toString$2$Method;
    private static MethodProxy CGLIB$toString$2$Proxy;
    private static Method CGLIB$hashCode$3$Method;
    private static MethodProxy CGLIB$hashCode$3$Proxy;
    private static Method CGLIB$clone$4$Method;
    private static MethodProxy CGLIB$clone$4$Proxy;

    static void CGLIB$STATICHOOK1() throws ClassNotFoundException {
        Method amethod[];
        Method amethod1[];
        CGLIB$THREAD_CALLBACKS = new ThreadLocal();
        CGLIB$emptyArgs = new Object[0];
        Class class1 = Class.forName("com.jml.代理模式.五期.service.cglib.调试代理类.MemberServiceImpl$$EnhancerByCGLIB$$600aa7a2");
        Class class2;
        amethod = ReflectUtils.findMethods(new String[]{
                "equals", "(Ljava/lang/Object;)Z", "toString", "()Ljava/lang/String;", "hashCode", "()I", "clone", "()Ljava/lang/Object;"
        }, (class2 = Class.forName("java.lang.Object")).getDeclaredMethods());
        Method[] _tmp = amethod;
        CGLIB$equals$1$Method = amethod[0];
        CGLIB$equals$1$Proxy = MethodProxy.create(class2, class1, "(Ljava/lang/Object;)Z", "equals", "CGLIB$equals$1");
        CGLIB$toString$2$Method = amethod[1];
        CGLIB$toString$2$Proxy = MethodProxy.create(class2, class1, "()Ljava/lang/String;", "toString", "CGLIB$toString$2");
        CGLIB$hashCode$3$Method = amethod[2];
        CGLIB$hashCode$3$Proxy = MethodProxy.create(class2, class1, "()I", "hashCode", "CGLIB$hashCode$3");
        CGLIB$clone$4$Method = amethod[3];
        CGLIB$clone$4$Proxy = MethodProxy.create(class2, class1, "()Ljava/lang/Object;", "clone", "CGLIB$clone$4");
        amethod1 = ReflectUtils.findMethods(new String[]{
                "addMember", "(Ljava/lang/String;)Ljava/lang/String;"
        }, (class2 = Class.forName("com.jml.代理模式.五期.service.cglib.调试代理类.MemberServiceImpl")).getDeclaredMethods());
        Method[] _tmp1 = amethod1;
        CGLIB$addMember$0$Method = amethod1[0];
        CGLIB$addMember$0$Proxy = MethodProxy.create(class2, class1, "(Ljava/lang/String;)Ljava/lang/String;", "addMember", "CGLIB$addMember$0");
    }

    final String CGLIB$addMember$0(String paramString) {
        return super.addMember(paramString);
    }

    @Override
    public final String addMember(String paramString) {
        // 获取回调接口
        MethodInterceptor tmp4_1 = this.CGLIB$CALLBACK_0;
        if (tmp4_1 == null) {
            CGLIB$BIND_CALLBACKS(this);
        }
        MethodInterceptor tmp17_14 = this.CGLIB$CALLBACK_0;
        try {
            if (tmp17_14 != null) {
                return (String) tmp17_14.intercept(this, CGLIB$addMember$0$Method, new Object[]{paramString},
                        CGLIB$addMember$0$Proxy);
            }
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
        return super.addMember(paramString);
    }

    private void CGLIB$BIND_CALLBACKS(MemberServiceImpl$$EnhancerByCGLIB$$600aa7a2 memberServiceImpl$$EnhancerByCGLIB$$600aa7a2) {
    }

    final boolean CGLIB$equals$1(Object paramObject) {
        return super.equals(paramObject);
    }

    /**
     * 设置cglib的回调
     *
     * @param paramArrayOfCallback
     */
    public void setCallbacks(Callback paramArrayOfCallback) {
        this.CGLIB$CALLBACK_0 = ((MethodInterceptor) paramArrayOfCallback);
    }

    static {
        try {
            CGLIB$STATICHOOK1();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
